課程資訊
課程名稱
軟體開發方法
Software Development Methods 
開課學期
108-2 
授課對象
管理學院  資訊管理學研究所  
授課教師
蔡益坤 
課號
IM5027 
課程識別碼
725 U3340 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期三7,8,9(14:20~17:20) 
上課地點
管二303 
備註
部分週次之週三6有實習課,地點同上課教室。
限學士班三年級以上
總人數上限:50人
外系人數限制:4人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1082sdm2020 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

This course introduces a selection of theories and practices that, we believe, will enhance the student's ability in developing correct and high-quality software. The view taken here is that of an engineer (programmer, software engineer, or software architect) and hence the focus of the course is primarily on the technical aspects of software development process. We will start with an overview of the typical software development process and relevant issues and then study in greater details some fundamental elements of software modeling, design, and verification, along with several software productivity tools and development practices. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. We will also study Web application programming techniques and security, to better prepare for the project. 

課程目標
The goal of this course is to acquaint the students with some of the well-used methods and tools for practical software development as well as some fundamentals of software verification, so as to prepare them for a career in software development. 
課程要求
Object-Oriented Programming and Database Management. 
預期每週課後學習時數
 
Office Hours
每週三 13:30~14:30
每週二 13:30~14:30 
指定閱讀
Class notes and selected readings. 
參考書目
See the course wikisite:
http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2020:main 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Homework 
10% 
 
2. 
Term Project 
50% 
 
3. 
Final Exam 
30% 
 
4. 
Attendance/Participation 
10% 
 
 
課程進度
週次
日期
單元主題
第1週
3/04  Introduction
Productivity Tools: Version Control with Git 
第2週
3/11  Software Modeling: An Overview of UML
Productivity Tools: Eclipse and EGit 
第3週
3/18  Software Modeling: UML Diagrams 
第4週
3/25  Software Implementation: Web Programming Pearls 
第5週
4/01  Term Project: Proposal Presentations
Invited Talk (or Make-Up Lecture) 
第6週
4/08  Software Modeling: Domain Modeling 
第7週
4/15  Software Modeling: Domain Modeling 
第8週
4/22  Software Development Practice: Agile Development in Practice 
第9週
4/29  Term Project: First Preliminary Demos
Software Development Practice: Design Document 
第10週
5/06  Design Patterns 
第11週
5/13  Design Patterns 
第12週
5/20  Term Project: Second Preliminary Demos
Software Security: Web Application Security 
第13週
5/27  Software Verification: Testing 
第14週
6/03  Software Modeling: Formal Logic and Correctness Requirements 
第15週
6/10  Term Project: Final Presentations 
第16週
6/17  Final Exam 
第17週
6/24  Software Verification: Formal Verification 
第18週
7/01  Software Verification: Formal Verification